iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 3
5
自我挑戰組

計算機概論X30天系列 第 3

Day3:[心得]心得體悟:學習程式的方法

  • 分享至 

  • xImage
  •  

閱讀前,建議可以參考Day1:閱讀指南&為何選擇這個題目?

▌挑戰簡介

  • 題目:計算機概論X30天

  • 挑戰內容:連續30天紀錄計算機概論、離散數學、演算法、資料結構等課程的學習內容。

  • 本篇性質:本篇是我一年多來學習心得,適合任何對程式語言有興趣的人閱讀

▌挑戰簡介

我的學習心得主要有兩點:

  • 每個階段,有每個階段適合的知識——不要著急,ㄧ定要學當階段最「有用」的知識,不要越級打怪。
  • 要設計自己的環境——不要相信意志力,而是讓環境推你成長。

每個階段,有每個階段適合的知識

清華大學經濟管理學院教授寧向東曾分享過一個故事,讓我印象深刻。他說

自己在大學的時候,學校會邀請外面厲害的老師來上課。但那時他們班的同學(至少他自己),聽起來很不感興趣,覺得老師講的東西很虛。然而,有另一個班的學生(主要都是已出社會的高管),不知道為什麼,聽起來卻覺得特別實,邊聽邊點頭、抄筆記。
這件事情讓他認識到很多東西,你會覺得它虛,可能在於你的階段還不適合該內容。

就像我在Day1:閱讀指南&為何選擇這個題目?所說的,我覺得對新手最不友善的建議,就是叫他們去學基礎的東西,像是(計算機概論、演算法與資料結構),因為這些新手還用不上。他們是屬於「遠的有用」的知識,而不是「近的有用」。

近的有用?遠的有用?

什麼是「近的有用」?——就是跟你解決當下問題最直接相關的知識。
什麼是「遠的有用」?——就是跟你解決當下問題間接or偶然相關的知識。

舉個很奇怪的例子:

某天,牛頓研究物理到一半,跑去了花園散步。結果,散步散步著,他就被樹上掉下來的蘋果砸到,讓他靈機一動想到「地心引力」。

我們可以說——「如果沒有去花園散步這件事」,牛頓就沒有機會想到地心引力。因此在這個故事中,「散步」是對牛頓「有用」的事情。

但是,一般人學物理,第一件事情難道是去花園散步嗎?不是。

一個人想學物理,第一件事情肯定不是去花園散步,而是去找一本物理教科書讀。因為我們內心都知道,在上面那個故事中,散步是「遠的有用」(而且是特別遠的那種,根本是偶然有用),「讀書」才真正近的有用。牛頓是因為層次太高,所以任何生活的事件才可以引他產生靈感。

繼續推演下去,很多領域的學習也是這樣的:

  • 如果想學要能跟外國人溝通,應該就是直接去講英文(直接有用),而不是去念語言學(間接有用)
  • 如果想學腳踏車那就應該去騎腳踏車(直接有用),而不是去看力學概論(間接有用)。
  • 如果想學寫程式那就直接去寫(直接有用),而不是看計算機概論(間接有用)
  • 如果想學PS就應該去作圖(直接有用),而不是去看色彩學、心理學(間接有用)
  • 如果想寫文章那就應該直接去寫(直接有用),而不是去看文學評析、20世紀經典文學名著(間接有用)
  • 如果想學物理學應該直接去看教科書(直接有用),而不是去花園散步(偶然有用)

一個新手,應該先從「最近的」有用開始學,而不是從「遠的有用」。因為所謂的「遠的有用」不能幫你解決當下的難題,相反的,他們只會讓你覺得茫然,覺得「我到底學這個做什麼?」「我是不是沒有天份」,最後因此從入門到放棄。

什麼是基礎理論?

為什麼基礎理論很難懂?

因為所謂的「基礎理論」——是現實/經驗「抽象化」的結果。那什麼是抽象化?所謂的抽象化則是——「對現實資訊的選擇」(相關內容可以參考我的上一篇文章Day2:[心得]一個語言如果不改變你的思考方式,就不值得學?談程式語言的本質。因此所謂「理論」,其實跟「現實狀況」具有一段距離的。

尼采曾說過「人無法理解它沒有經驗過的事情」

  • 對於缺乏經驗的人而言,理論因為經過多層的抽象化,離現實太遠,會覺得很空虛,只會扼殺他的興趣
  • 對於經驗豐富的人而言,理論正好是統合自己眾多經驗、技術的容器

要能夠理解理論,因該要先有基於對現實基礎的認識

我的第一個心得就是「ㄧ定不要從所謂的『基礎開始』,直接從最『有用』的部分學起」

2.設計自己的環境

第二個心得,就是不要相信「意志力」這個東西——在環境面前,人的意志力根本微不足道。像是,在厲害的人身邊,就算你什麼都不做,也可以變強。在壓力的環境中,就算你不想學,也有人逼你學。

怎麼設計環境?

我把環境分為以下幾種:

  • 工作:讓權威/金錢逼你學習(像是正職、實習、接單)
  • 比賽:讓隊友和榮譽逼你學習(像是參與IT鐵人賽)
  • 課程:讓沈默成本和老師逼你學習(有學分壓力的學校課程比自費的好,線下課程又比線上課程好)
  • 社群:讓身邊的人逼你學習(其中現下聚會,比參與線上社群好)

其中重點是有兩個

  1. 環境給予的刺激/壓力愈大愈好
  2. 環境中比你厲害的人愈多愈好

我的環境不好怎麼辦?

我的環境不好怎麼辦?我覺得不用擔心,因為現階段總是有可以觸及的切入點

比如說,如果還沒有能力找工作,可以從比賽開始;如果沒有能力比大比賽,就可以從門檻低的小比賽開始;連小比賽沒有的能力,可以從上基礎課程開始。

  • 對於有點基礎的人:可以參加比賽(像是「鐵人賽」每天逼自己學習)、參與線上競賽(六角學院時常會辦比賽)、參與專案(找一些朋友做專案)、設計場景(像是付錢給朋友說好不完成就拿不回錢)

  • 如果連基礎都沒有:可以參與課程(讓老師逼你學習)

其中的秘訣是——要「有意識」的不停跳到更好上面的層次,不要停在某個區域太久

因此我的第二個心得就是「不要相信意志力,要有意識的跳到『更好一點的階段』」

總結

  • 每個階段,有每個階段適合的知識—— 學習不要從基礎開始,直接從「最有用」的部分開始,

  • 要設計自己的環境—— ㄧ定要有意識的跟最厲害的人再一起&到能刺激自己的環境中

推薦閱讀


上一篇
Day2:[心得]一個語言如果不改變你的思考方式,就不值得學?談程式語言的本質
下一篇
Day4: [心得]工程師的三個重要能力
系列文
計算機概論X30天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言